<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>>复制网页内容自动添加版权信息</title>
</head>
<body>
分别复制到txt和富文本查看效果
<div id="answer">测试数据1<b>测试</b></div>
<p style="color:red">测试数据2<span style="color:yellow;background-color: #ccc">测试数据3</span></p>

<script type="text/javascript">
    function setClipboardText(event){
        event.preventDefault();//阻止元素发生默认的行为（例如，当点击提交按钮时阻止对表单的提交）。
        var node = document.createElement('div');
        node.appendChild(window.getSelection().getRangeAt(0).cloneContents());
        //getRangeAt(0)返回对基于零的数字索引与传递参数匹配的选择对象中的范围的引用。对于连续选择，参数应为零。
        var htmlData = '<div>'
                + node.innerHTML
                + '<br /><br />著作权归作者所有。<br />'
                + '商业转载请联系作者获得授权，非商业转载请注明出处。<br />'
                + '作者：作者名<br />链接：http://<br />'
                + '来源：来源地址<br /><br />'
                + '</div>';
        var textData = window.getSelection().getRangeAt(0)
                + '\n\n著作权归作者所有。\n'
                + '商业转载请联系作者获得授权，非商业转载请注明出处。\n'
                + '作者：作者名\n'
                + '来源：来源地址\n\n';
        if(event.clipboardData){
            event.clipboardData.setData("text/html", htmlData);
            //setData(剪贴板格式, 数据) 给剪贴板赋予指定格式的数据。返回 true 表示操作成功。
            event.clipboardData.setData("text/plain",textData);
        }
        else if(window.clipboardData){ //window.clipboardData的作用是在页面上将需要的东西复制到剪贴板上，提供了对于预定义的剪贴板格式的访问，以便在编辑操作中使用。
            return window.clipboardData.setData("text", textData);
        }
    };

    document.addEventListener('copy',function(e){
        setClipboardText(e);
    });
</script>

</body>
</html>